package com.example.entity.vo.request;

import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.Pattern;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

/**
 * 作者:xuSen
 * 日期2025/4/23 14:25
 * 用户详情保存视图对象
 * 用于接收和验证用户详情信息
 */
@Data
public class DetailsSaveVO {
    /**
     * 用户名字段
     * 限制用户名只能包含字母、数字和中文字符，长度为1到20个字符
     */
    @Pattern(regexp = "^[a-zA-Z0-9\\u4e00-\\u9fa5]+$")
    @Length(min = 1, max = 20)
    String username;

    /**
     * 性别字段
     * 限制性别值为0或1，以简化性别数据的处理
     */
    @Min(0)
    @Max(1)
    int gender;

    /**
     * 手机号字段
     * 限制手机号格式为中国大陆手机号，长度不超过11位
     */
    @Length(max = 11)
    @Pattern(regexp = "^1[3-9]\\d{9}$")
    String phone;

    /**
     * QQ号字段
     * QQ号长度通常不超过13位，此字段允许空值
     */
    @Length(max = 13)
    String qq;

    /**
     * 微信号字段
     * 微信号长度通常不超过20位，此字段允许空值
     */
    @Length(max = 20)
    String wx;

    /**
     * 用户描述字段
     * 描述信息长度不超过200个字符，允许用户添加详细的自我介绍
     */
    @Length(max = 200)
    String desc;
}

